#ifndef TELEOPWINDOW_H
#define TELEOPWINDOW_H

#include <gtkmm.h>
#include <glibmm/threads.h>

class TeleopWindow : public Gtk::Window
{
public:

  TeleopWindow();
  virtual ~TeleopWindow();

  void update();

  static const int UP = 0;
  static const int DOWN = 1;
  static const int LEFT = 2;
  static const int RIGHT = 3;

private:
  //Override default signal handler:
  virtual bool on_key_press_event(GdkEventKey* event);

  virtual bool on_key_release_event(GdkEventKey* event);

  Gtk::Grid m_container;
  Gtk::Label lbVelocidadTraslacional;
  Gtk::Label lbVelocidadRotacional;
  Gtk::Label lbAceleracionTraslacional;
  Gtk::Label lbAceleracionRotacional;
  Gtk::Label lbVelocidadTraslacionalMaxima;
  Gtk::Label lbVelocidadRotacionalMaxima;
  Gtk::Label txtVelocidadTraslacional;
  Gtk::Label txtVelocidadRotacional;
  Gtk::Label txtAceleracionRotacional;
  Gtk::Label txtAceleracionTraslacional;
  Gtk::Label txtVelocidadTraslacionalMaxima;
  Gtk::Label txtVelocidadRotacionalMaxima;

  Glib::Threads::Thread * updateThread;

  float velocidadTraslacional;
  float velocidadRotacional;
  float velocidadTraslacionalMaxima;
  float velocidadRotacionalMaxima;
  float aceleracionTraslacional;
  float aceleracionRotacional;

  bool pressed[4];
};

#endif //GTKMM_TELEOP_WINDOW_H
